Digital video content can now be streamed to multiple clients in real-time over traditional cable television and telephone networks, both of which are being leveraged by service providers to provide more attractive and varied services to customers. The streaming of digital video content to clients is supported by a stream server. A stream server delivers digital video content to end-user devices via multicasting or unicasting, where multicasting is used to distribute the same content to multiple end-user devices such as set top boxes (STBs) concurrently and unicasting is used to provide specific content to a particular end-user device. The end-user devices receive streams of digital video content via multicasting or unicasting and playout the digital video content to a device such as a television.
One feature supported by digital video networks is a program restart feature in which an end-user can request a program that is currently being broadcast to be restarted from the beginning. This feature allows an end-user to watch the program from the beginning even if the end-user's STB was not tuned to the program at the beginning of the program broadcast.
Conventional program restart or “start over” functionality is implemented by establishing a new unicast stream for each end-user device that makes a program restart request. Although establishing a new unicast stream for each new program restart request enables a service provider to implement program restart functionality, the bandwidth requirements for this approach increase linearly with the number of program restart requests and large numbers of program restart requests translate to a large bandwidth requirement.